
const util = require('../../utils/util.js');

var refresh = false;
Page({
  data: {
    winWidth: 0,      // 设备屏幕宽
    winHeight: 0,     // 设备屏幕高

    datalist: [],

    dataListDateCurrent: 0,       // 请求参数：日期
    dataListDateCount: 0,         // 请求次数

    loadmorehidden: false,     // 上拉加载更多 动画
    refreshhidden: false       // 下拉刷新动画
  },
  onLoad: function (options) {

    var that = this;

    wx.getSystemInfo({
      success: function (res) {
        that.setData({
          winWidth: res.windowWidth,
          winHeight: res.windowHeight
        });
      }
    });

    // 请求 精选 列表数据（最新数据--今日）news/latest
    util.AJAX("news/latest", function (res) {

      var arr = res.data;
      // console.log(JSON.stringify(arr));
      var format = util.getFormatDate(arr.date);

      arr["dateDay"] = format.dateDay; // 格式化日期 方便加载指定日期数据 获取星期几方便显示

      var list = that.data.datalist;

      // 重新写入数据
      that.setData({
        datalist: list.concat(arr),      // 拼接列表数据
        dataListDateCurrent: arr.date,   // 请求日期
        dataListDateCount: 1
      });

    });

  },
  // 下拉 刷新列表(滚到顶部)
  onPullDownRefresh: function (e) {

    if (!refresh) {
      var that = this;
      refresh = true;

      // 显示刷新动画
      that.setData({
        refreshhidden: false
      })
      // 请求 精选 列表数据（最新数据--今日）news/latest
      util.AJAX("news/latest", function (res) {

        // 数据加载完成后 延迟隐藏loading
        setTimeout(function () {
          wx.clearStorageSync(); // 清空数据

          // 重置列表为空
          that.setData({
            datalist: []
          })

          refresh = false;

          var arr = res.data;

          var format = util.getFormatDate(arr.date);
          arr["dateDay"] = format.dateDay;

          var list = that.data.datalist;
          // 重新写入数据
          that.setData({
            datalist: list.concat(arr),   // 拼接列表数据
            dataListDateCurrent: arr.date,// 当前日期
            dataListDateCount: 1,
            refreshhidden: false

          });
          console.log("刷新完成");
          // wx.hideLoading();
        }, 2000);

      });
    } else {
      console.log("正在刷新...");
    }
  },
  // 上拉 加载更多(滚到底部)
  onReachBottom: function (e) {
    console.log('滚动到底部');


    var that = this;

    // 加载更多 loading
    that.setData({
      loadmorehidden: false
    })

    var currentDate = this.data.dataListDateCurrent; // 请求参数：日期

    console.log("当前日期：" + currentDate + " 加载次数：" + this.data.dataListDateCount);

    // 限制加载次数
    if (this.data.dataListDateCount >= 3) {
      that.setData({ // 加载更多 loading
        loadmorehidden: true
      });
    } else {
      // 记录请求日期参数，避免滚动到底部事件，多次触发相同请求
      if (currentDate == wx.getStorageSync("currentDate")) {
        console.log(currentDate + "已发起请求!");
      } else {
        wx.setStorageSync("currentDate", currentDate)
        // 请求 精选 列表数据（历史数据）news/latest
        util.AJAX("news/before/" + currentDate, function (res) {

          var arr = res.data;
          // 新增JSON字段dateDay：格式化日期 08月03日 星期四
          var format = util.getFormatDate(arr.date);
          arr["dateDay"] = format.dateDay;

          var list = that.data.datalist;

          that.setData({
            datalist: list.concat(arr),    // 累加列表数据                      
            dataListDateCurrent: arr.date, // 请求日期-1
            dataListDateCount: that.data.dataListDateCount + 1     // 统计加载次数
          });

        });
      }

    }
  },
  onReady: function (e) {
    console.log("onReady 清空缓存！");
    wx.clearStorageSync();
  }
})